<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
			<!-- 在dom中使用的时候一定注意名称，驼峰要改成kebab-case -->
			<!-- 父传子 -->
			<button-counter :bc-msg="msg" :bc-msg2="'jjjjj'" :bc-obj="obj"></button-counter><br>
			<button-counter></button-counter><br>
			<!-- 不需要在后面加() -->
			<!-- 子传父 -->
			<button-counter @send="jieshou"></button-counter><br>
			<!-- <button-sub></button-sub> -->
			演示子传父的传值{{count}}
			演示子传父的传值{{obj}}
		</div>
		<script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			// 定义一个名为 button-counter 的新组件
			//Vue.component('名称', {
			//配置
			// })
			// Vue.component('button-counter', {
			// 	//data是一个function函数，防止组件多次使用时，数据共享
			// 	data: function() {
			// 		return {
			// 			count: 0
			// 		}
			// 	},
			// 	//组件的内容
			// 	template: `<button v-on:click="count++">
			// 					You clicked me {{ count }} times.
			// 				</button>`
			// });

			new Vue({
				// 父容器
				el: "#app",
				data: {
					msg: "父组件内容",
					count: 0,
					obj: {
						id: 1,
						name: "haha",
						age: 20
					}
				},
				// 子组件接收
				methods: {
					jieshou(val, obj) {
						console.log("从子组件中接收：", val);
						this.count = val;
						this.obj = obj;
					}
				},
				// 子
				components: {
					'button-counter': {
						data: function() {
							return {
								count: 0,
								obj: {
									id: 1,
									name: "子组件中的",
									age: 20
								}
							}
						},
						methods: {
							send() {
								this.count++
								//将count的值传到父组件中
								this.$emit("send", this.count, this.obj);
							}
						},
						props: ['bcMsg', 'bcMsg2', 'bcObj'],
						//组件的内容。只支持单根节点
						template: `
									<div>
										是从父组件中传递的{{bcMsg}}
										是从父组件中传递的{{bcMsg2}}
										对象{{bcObj}}
										<button v-on:click="send()">
											You clicked me {{ count }} times.
										</button>
										<button-sub :bsMsg="bcMsg"></button-sub>
									</div>
									`,
						components: {
							'button-sub': {
								props: ['bsMsg'],
								template: `<span>我是button-counter的子组件,从父组件接到了{{bsMsg}}</span>`
							}
						}
					}
				}
			})
		</script>
	</body>
</html>